#include"PriorityQueue.h"


int main()
{
    // PriorityQueue *pq = PQ_Create(1);
    // int arr[] = {5, 2, 8, 6, 0, 9, 18, 28, 48, 7, 4};
    // for (int i = 0; i < sizeof(arr)/sizeof(int); i++)
    // {
    //     PQ_Insert(pq, arr[i]);
    // }
    // while(!PQ_IsEmpty(pq))
    // {
    //     printf("%d ", PQ_Extract(pq));
    // }
    // return 0;

    PriorityQueue *pq = PQ_Create(1);//先建最小优先队列
    int arr[] = {5, 2, 8, 6, 0, 9, 18, 28, 48, 7, 4};
    for (int i = 0; i < sizeof(arr) / sizeof(arr[0]);i++)
    {
        PQ_Insert(pq, arr[i]);//实际是最小堆。
    }
    int *array = (int *)malloc( (sizeof(arr) / sizeof(arr[0]) * 2 - 1));
    int count = 0;
    for (int j = 0; j < (sizeof(arr) / sizeof(arr[0]) * 2 - 1);j++)
    {
        array[j]=PQ_Extract(pq);
        count++;
        if(count!=0&&count%2==0)
            PQ_Insert(pq, array[j - 1] + array[j]);
    }
    return 0;
}

int main()